import type { GetPatientMylistItem } from './patient'

/**
 * 科室(一级科室/二级科室)
 */
export interface DepartmentItem {
	/**
	 * 子级集合
	 */
	child?: DepartmentItem[]
	/**
	 * 科室id
	 */
	id?: string
	/**
	 * 科室名称
	 */
	name?: string
	/**
	 * 科室头像
	 */
	avatar?: string
}

/**
 * 问诊-保存/修改问诊订单 - 参数
 */
export interface PostPatientConsultOrderParams {
	/**
	 * 开药门诊-过敏史0无1有2不清楚
	 */
	allergicHistory?: number
	/**
	 * 找医生/极速问诊-是否就诊过0未就诊1就诊过
	 */
	consultFlag?: number
	/**
	 * 使用优惠券，必传可使用优惠券id
	 */
	couponId?: string
	/**
	 * 选择的科室id-极速问诊必填(选择的科室)
	 */
	depId?: string
	/**
	 * 咨询的医生-类型为找医生问诊，字段是必须的
	 */
	docId?: string
	/**
	 * 开药门诊-生育状态及计划0无1备孕中2已怀孕3哺乳期
	 */
	fertilityStatus?: number
	/**
	 * 病情--症状描述
	 */
	illnessDesc: string
	/**
	 * 找医生/极速问诊-患病时间1一周内2一月内3半年内4半年以上
	 */
	illnessTime?: number
	/**
	 * 极速问诊类型：0普通1三甲
	 */
	illnessType?: number
	/**
	 * 开药门诊-肝功能0正常1异常2不清楚
	 */
	liverFunction?: number
	/**
	 * 开药问诊-开药问诊的药品id集合
	 */
	medicines?: Medicine[]
	/**
	 * 患者id,用于关联患者信息
	 */
	patientId: string
	/**
	 * 补充病例信息-图片集合
	 */
	pictures?: Picture[]
	/**
	 * 开药门诊-肾功能0正常1异常2不清楚
	 */
	renalFunction?: number
	/**
	 * 就诊类型1找医生 2极速问诊 3开药问诊默认是1
	 */
	type: number
}

export interface Medicine {
	/**
	 * 选择的药品id
	 */
	id: string
	/**
	 * 选择的药品数量
	 */
	quantity: number
}

/**
 * 兼容 uni-file-picker 的 value 类型
 */
export interface Picture extends UniHelper.UniFilePickerValue {
	/**
	 * 图片id
	 */
	id: string
	/**
	 * 图片url
	 */
	url: string
}

/**
 * 问诊-支付页面-计算就诊信息和抵扣信息 - 参数
 */
export interface GetPatientConsultOrderPreParams {
	/**
	 * 可使用优惠券id,当使用优惠券，且指定了优惠券时，传值
	 */
	couponId?: string
	/**
	 * type为1找医生，必传医生信息，返回医生服务费信息
	 */
	docId?: string
	/**
	 * 极速问诊级别：0普通1三甲
	 */
	illnessType?: string
	/**
	 * 问诊类型1找医生2极速问诊3开药问诊
	 */
	type: string
	/**
	 * useCoupon,默认值1，即使用优惠券
	 * 传0，不使用优惠券
	 * 不传，默认为是，使用优惠券，
	 * 其中，不传优惠券id,默认按照最大优惠券使用，
	 * 传了优惠券id,表示使用指定的优惠券
	 */
	useCoupon?: string
}

/**
 * 问诊-支付页面-计算就诊信息和抵扣信息 - 返回数据
 */
export interface GetPatientConsultOrderPreData {
	/**
	 * 实付金额
	 */
	actualPayment: number
	/**
	 * 优惠券抵扣
	 */
	couponDeduction: number
	/**
	 * 使用的优惠券id-使用优惠券时，返回
	 */
	couponId?: string
	/**
	 * 极速问诊类型：0普通1三甲,极速问题必须有值
	 */
	illnessType?: number
	/**
	 * 应付款/价格-图文或者极速的费用，极速普通10元，三甲39元
	 */
	payment: number
	/**
	 * 积分可抵扣
	 */
	pointDeduction: number
	/**
	 * 1问医生2极速问诊2开药问诊--默认是1
	 */
	type?: number
}

/**
 * 支付参数
 */
export interface PostPatientConsultPayParams {
	/**
	 * 订单id
	 */
	orderId: string
	/**
	 * 上课自测时，传值：http://localhost:端口号/+回调页面，
	 * vue/uniapp 版本测试环境，传值：http://测试环境域名/+回调页面，
	 * 用于决定付款成功后，回调地址是本地还是测试环境地址
	 */
	payCallback?: string
	/**
	 * 支付方式0微信支付，1支付宝2云闪付
	 */
	paymentMethod?: string
}

/**
 * 问诊-查询订单详情信息 - 返回数据
 */
export interface GetPatientConsultOrderDetailData {
	/**
	 * 实付金额
	 */
	actualPayment: number
	/**
	 * 开药门诊-过敏史0无1有2不清楚
	 */
	allergicHistory?: number
	/**
	 * 取消/退款进度
	 */
	cancelProcess?: string
	/**
	 * 取消订单原因
	 */
	cancelReason?: string
	/**
	 * 取消订单原因文字
	 */
	cancelReasonValue?: string
	/**
	 * 找医生/极速问诊-是否就诊过0未就诊1就诊过
	 */
	consultFlag?: number
	/**
	 * 倒计时-1表示计时已过(单位s)
	 */
	countdown: number
	/**
	 * 优惠券抵扣
	 */
	couponDeduction: number
	/**
	 * 订单创建时间
	 */
	createTime: string
	/**
	 * 订单创建人-用于医生端聊天的to对象
	 */
	creator: string
	/**
	 * 咨询的医生--找医生必有，其他类型有医生接单后，也必有
	 */
	docInfo?: DocInfo
	/**
	 * 是否已经评价1 已评价0 未评价
	 */
	evaluateFlag: number
	/**
	 * 存在评价，返回评价id
	 */
	evaluateId: string
	/**
	 * 开药门诊-生育状态及计划0无1备孕中2已怀孕3哺乳期
	 */
	fertilityStatus?: number
	/**
	 * 订单id
	 */
	id: string
	/**
	 * 病情--症状描述
	 */
	illnessDesc: string
	/**
	 * 找医生/极速问诊-患病时间1一周内2一月内3半年内4半年以上
	 */
	illnessTime?: number
	/**
	 * 开药门诊-肝功能0正常1异常2不清楚
	 */
	liverFunction?: number
	/**
	 * 开药问诊必有，其他类型无
	 */
	medicines?: Medicine[]
	/**
	 * 订单编号
	 */
	orderNo: string
	/**
	 * 患者id,用于关联患者信息
	 */
	patientInfo: GetPatientMylistItem
	/**
	 * 应付款/价格
	 */
	payment: number
	/**
	 * 接诊记录的图片信息集合
	 */
	pictures: Picture[]
	/**
	 * 积分可抵扣
	 */
	pointDeduction: number
	/**
	 * 处方id信息
	 */
	prescriptionId: string
	/**
	 * 开药门诊-肾功能0正常1异常2不清楚
	 */
	renalFunction?: number
	/**
	 * 订单状态1待支付2待接诊3咨询中4已完成5已取消/药品订单10待支付11待发货12待收货13已完成14已取消
	 */
	status: OrderStatus
	/**
	 * 问诊的订单状态1待支付2待接诊3咨询中4已完成5已取消/药品订单10待支付11待发货12待收货13已完成14已取消
	 */
	statusValue: string
	/**
	 * 订单类型1问医生2极速问诊3开药问诊4药品订单
	 */
	type: number
}

/**
 * 咨询的医生--找医生必有，其他类型有医生接单后，也必有
 */
export interface DocInfo {
	/**
	 * 医生头像
	 */
	avatar: string
	/**
	 * 科室
	 */
	depName: string
	/**
	 * 医院等级
	 */
	gradeName: string
	/**
	 * 医院名称
	 */
	hospitalName: string
	/**
	 * 医生id
	 */
	id: string
	/**
	 * 医生姓名
	 */
	name: string
	/**
	 * 职称
	 */
	positionalTitles: string
}

export interface Medicine {
	/**
	 * 药品价格
	 */
	amount: string
	/**
	 * 药品图片
	 */
	avatar: string
	/**
	 * 主键id
	 */
	id: string
	/**
	 * 药品名称
	 */
	name: string
	/**
	 * 是否是处方药0不是1是
	 */
	prescriptionFlag: string
	/**
	 * 选择的药品数量
	 */
	quantity: number
	/**
	 * 药品规格
	 */
	specs: string
	/**
	 * 药品用法用量
	 */
	usageDosag: string
}
/**
 * 订单状态 1待支付 2待接诊 3咨询中 4已完成 5已取消
 */
export enum OrderStatus {
	DaiZhiFu = 1,
	DaiJieZhen = 2,
	ZiXunZhong = 3,
	YiWanCheng = 4,
	YiQuXiao = 5
}
